﻿namespace WMS6.Services
{
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.ServiceModel;
    using WMS6.DataEntity;
    using WMS6.QueryEntity;

    [ServiceContract(Namespace="WMS6.Services")]
    public interface IStockCountService
    {
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string AdjustInventoryQtyForPc(string PhysicalRequestId, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(CycleCountCriteriaInfo)), ServiceKnownType(typeof(PubParasInfo))]
        string CycleCountRelease(CycleCountCriteriaInfo cycleCountCriteriaInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string DeleteCycleCountRelease(List<string> IDS, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string DeleteCycleCountRequest(List<string> IDS, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string DeleteCycleCountTag(string releaseID, List<string> TagNo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string DeletePhysicalRequest(List<string> IDS, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string DeletePhysicalTag(List<string> IDS, List<string> TagNo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        DataSet GetAllCycleCountRelease(PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        DataSet GetAllCycleCountRequest(PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        DataSet GetAllPhysicalRequest(PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        DataSet GetAllPhysicalTag(PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(CycleCountReleaseQueryEntity)), OperationContract]
        DataSet GetCycleCountReleaseByQueryEntity(CycleCountReleaseQueryEntity RequestEntity, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract, ServiceKnownType(typeof(CycleCountReleaseInfo))]
        CycleCountReleaseInfo GetCycleCountReleaseInfoByID(string id, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(CycleCountRequestQueryEntity)), OperationContract]
        DataSet GetCycleCountRequestByQueryEntity(CycleCountRequestQueryEntity RequestEntity, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(CycleCountRequestInfo)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        CycleCountRequestInfo GetCycleCountRequestInfoByID(string id, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(CycleCountTagInfo)), OperationContract]
        CycleCountTagInfo GetCycleCountTagByID(string ReleaseID, string TagNo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(PhysicalRequestInfo))]
        PhysicalRequestInfo GetPCReviewInfoByID(string RequestInfoByID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PhysicalRequestQueryEntity)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        DataSet GetPhysicalRequestDAByQueryEntity(PhysicalRequestQueryEntity RequestEntity, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PhysicalRequestInfo)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        PhysicalRequestInfo GetPhysicalRequestInfoByID(string RequestInfoByID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PhysicalTagQueryEntity)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        DataSet GetPhysicalTagDAByQueryEntity(PhysicalTagQueryEntity RequestEntity, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PhysicalTagInfo)), ServiceKnownType(typeof(PubParasInfo))]
        PhysicalTagInfo GetPhysicalTagInfoByID(string id, int TagNo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        List<string> GetPhysicalTagNoListByID(string physicaltagID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract, ServiceKnownType(typeof(CycleCountReleaseInfo))]
        string InsertCycleCountRelease(CycleCountReleaseInfo CycleCountReleaseInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(CycleCountRequestInfo)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string InsertCycleCountRequest(CycleCountRequestInfo CycleCountRequestInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PhysicalRequestInfo)), ServiceKnownType(typeof(PubParasInfo))]
        string InsertPhysicalRequest(PhysicalRequestInfo physicalRequestInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(PhysicalTagInfo))]
        string InsertPhysicalTag(PhysicalTagInfo obj, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string InvHoldForPC(string id, string strType, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(CycleCountCriteriaInfo))]
        string SetCycleCountCriteria(CycleCountCriteriaInfo cycleCountCriteriaInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(CycleCountReleaseInfo)), ServiceKnownType(typeof(PubParasInfo))]
        string UpdateCycleCountRelease(CycleCountReleaseInfo obj, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(CycleCountRequestInfo)), OperationContract]
        string UpdateCycleCountRequest(CycleCountRequestInfo obj, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(CycleCountTagInfo)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string UpdateCycleCountTag(List<CycleCountTagInfo> obj, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(PhysicalRequestInfo)), OperationContract]
        string UpdatePhysicalRequest(PhysicalRequestInfo physicalRequestInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PhysicalTagInfo)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string UpdatePhysicalTag(PhysicalTagInfo obj, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(PhysicalRequestInfo)), OperationContract]
        string UpdatePhysicalTagList(List<PhysicalTagInfo> obj, string CountType, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract, ServiceKnownType(typeof(CycleCountTagInfo))]
        string UpdateTagQtyByReleaseIDAndTagNo(CycleCountTagInfo cycleCountTag, PubParasInfo pubParasInfo);
    }
}

